// axios的封装
// 引入axios
import router from "@/router";
import axios from "axios";
import { Message } from "element-ui";
import { BASE_URL } from './common'


// 1.封装服务器地址
// axios.defaults.baseURL = 'http://1.15.179.44:3001'
axios.defaults.baseURL = BASE_URL

// 2.请求拦截器，当通过请求时将token带给后端
// config就是请求头的信息，url，参数
axios.interceptors.request.use(config => {
    // 从本地取出token，设置config，通过config将设置的token带给后端
    const token = sessionStorage.getItem('token')
    // 将token设置到请求头上
    config.headers.authorization = token
    // 放行
    return config
})

// 响应拦截器
axios.interceptors.response.use(res => {
    // 判断res.data中是否存在code属性，当不存在或者不等于0时就弹出提示文本
    if (res.data.hasOwnProperty('code') && res.data.code !== 0 && res.data.code !== '00') {
        Message.error(res.data.msg)
    }
    // 返回res
    return res
    // 抛出错误
}, err => {
    // 当token过期或者被更改，code=401时，强制跳转到login页面
    if (err.response.data.code === 401) {
        router.push('/login')
    }
})

// 导出封装好的文件
export default axios
